﻿using System.Collections.Generic;
using System.Text.Json.Serialization;

namespace Essensoft.AspNetCore.Payment.Alipay.Domain
{
    /// <summary>
    /// ZhimaMerchantEvisaStatusSyncModel Data Structure.
    /// </summary>
    public class ZhimaMerchantEvisaStatusSyncModel : AlipayObject
    {
        /// <summary>
        /// 信息同步类型：VERIFY - 材料材料审核状态同步/APPROVE - 签证批准状态同步。  Action type: "VERIFY" for "VerifyUpdateToChannelAPI", and "APPROVE" for "ApproveUpdateToChannelAPI"
        /// </summary>
        [JsonPropertyName("action_type")]
        public string ActionType { get; set; }

        /// <summary>
        /// 批准结果列表。  ApprovedInfo list, if action type equals "APPROVE", this field should not be empty.
        /// </summary>
        [JsonPropertyName("approved_infos")]
        public List<ApprovedInfo> ApprovedInfos { get; set; }

        /// <summary>
        /// 信息同步动作发生时间。  DateTime of biz action.
        /// </summary>
        [JsonPropertyName("biz_time")]
        public string BizTime { get; set; }

        /// <summary>
        /// 商户生成唯一的外部接口调用事务号，使用 pid+out_biz_no 做唯一幂等。  Transaction number generated by channel merchant, idempotent with key of "parterId + out_biz_no".
        /// </summary>
        [JsonPropertyName("out_biz_no")]
        public string OutBizNo { get; set; }

        /// <summary>
        /// 场景类型：THA_EVOA。  API scene type, ex. THA_EVOA.
        /// </summary>
        [JsonPropertyName("scene_type")]
        public string SceneType { get; set; }

        /// <summary>
        /// 审核结果列表。  VerifiedInfo list, if action type equals "VERIFY", this field should not be empty.
        /// </summary>
        [JsonPropertyName("verified_infos")]
        public List<VerifiedInfo> VerifiedInfos { get; set; }
    }
}
